/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GUI.Cadastro;

import Facade.Facade;
import Objetos.Fornecedor;
import Objetos.Usuario;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;

/**
 *
 * @author celio
 */
public final class CadastroFornecedor extends JPanel {

    JLabel tipo, nome;
    JComboBox tTipo;
    JTextField tNome;
    JButton cadastrar, alterar, limpar, sair;
    String tipos[] = {"", "1 - Isento", "2 - Não Isento"};
    Facade fa;
    Fornecedor forn;
    JTable objetos;
    JScrollPane scroller;

    public CadastroFornecedor(final Usuario usu) {

        JLabel tela = new JLabel("... :::   Cadastro de Fornecedor   ::: ...");
        tela.setBounds(400, 10, 500, 20);
        add(tela);

        tipo = new JLabel("Tpo: ");
        tTipo = new JComboBox(tipos);

        nome = new JLabel("Nome: ");
        tNome = new JTextField(8);

        cadastrar = new JButton("Cadastrar");
        alterar = new JButton("Alterar");
        limpar = new JButton("Limpar");
        sair = new JButton("Sair");

        tipo.setBounds(10, 20, 100, 20);
        tTipo.setBounds(100, 20, 180, 20);

        nome.setBounds(10, 50, 100, 20);
        tNome.setBounds(100, 50, 120, 20);

        cadastrar.setBounds(20, 130, 100, 20);
        alterar.setBounds(350, 450, 100, 20);
        limpar.setBounds(120, 130, 100, 20);
        sair.setBounds(220, 130, 100, 20);

        add(tipo);
        add(tTipo);

        add(nome);
        add(tNome);

        add(cadastrar);
        add(alterar);
        add(limpar);
        add(sair);

        alterar.setEnabled(false);
        atualizaTabela(usu);

        cadastrar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                forn = new Fornecedor();
                fa = new Facade();
                if (tNome.getText().equalsIgnoreCase("") || tTipo.getSelectedIndex() == 0) {

                    JOptionPane.showMessageDialog(null, "Preencha todos os campos!!");
                } else {
                    forn.setNomeFornecedor(tNome.getText());

                    fa.adicionar_Fornecedor(forn, usu);

                    tTipo.setSelectedIndex(0);
                    tNome.setText("");
                    atualizaTabela(usu);
                }

            }
        });

        limpar.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                tTipo.setSelectedIndex(0);
                tNome.setText("");
                alterar.setEnabled(false);
                cadastrar.setEnabled(true);

            }
        });

        alterar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                fa = new Facade();
                forn = fa.procurar_Fornecedor(objetos.getModel().getValueAt(objetos.getSelectedRow(), 0).toString(),usu);
                Fornecedor alterado = new Fornecedor();
                forn.setNomeFornecedor(tNome.getText());
                fa.alterar_Fornecedor(forn, alterado, usu);

                tTipo.setSelectedIndex(0);
                tNome.setText("");
                atualizaTabela(usu);
            }
        });

        sair.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                setVisible(false);
            }
        });

        setLayout(null);
        setBackground(Color.LIGHT_GRAY);
        setBorder(BorderFactory.createBevelBorder(1, Color.DARK_GRAY, Color.DARK_GRAY));
        setSize(800, 600);
        setVisible(true);
        revalidate();
        repaint();
    }

    public void atualizaTabela(Usuario usu) {

        try {
            remove(scroller);

        } catch (NullPointerException e) {
        }
        fa = new Facade();
        objetos = fa.consultaTodos_Fornecedor(usu);
        objetos.setFont(new Font("Times New Roman", Font.BOLD, 14));
        scroller = new JScrollPane(objetos, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scroller.setBounds(350, 50, 720, 400);
        add(scroller);
    }
}
